package main

import "fmt"

func main() {
	// 使用make函数创建切片
	// 参数含义: 切片的类型, 初始大小, 最大容量
	s1 := make([]int, 5, 10)
	fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n", s1, len(s1), cap(s1)) // s1=[0 0 0 0 0] len(s1)=5 cap(s1)=10
	// 定义初始大小为0
	s2 := make([]int, 0, 10)
	fmt.Printf("s2=%v len(s2)=%d cap(s2)=%d\n", s2, len(s2), cap(s2)) // s2=[] len(s2)=0 cap(s2)=10

	// 切片赋值
	s3 := []int{1, 3, 5}
	s4 := s3
	fmt.Println(s3, s4) // [1 3 5] [1 3 5]
	s3[0] = 100
	fmt.Println(s3, s4) // [100 3 5] [100 3 5]

	// 切片遍历
	for i := 0; i < len(s3); i++ {
		fmt.Println(s3[i])
	}
	for i, v := range s3 {
		fmt.Println(i, v)
	}
}
